package com.haipumi.redis;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface SpringRedisClient {
	/**
	 * 存
	 * @param key
	 * @param value
	 */
	public void setKey(String key,Object value);
	
	/**
	 * 根据键取值
	 * @param key
	 * @return
	 */
	public Object getKey(String key);
	
	/**
	 * 自增
	 * @param key
	 */
	public void incr(String key);
	
	/**
	 * 在上一个元素的左边存
	 * @param key
	 * @param value
	 */
	public void lPush(String key,String value);
	
	/**
	 *在上一个元素的右边边存
	 * @param key
	 * @param value
	 */
	public void RPush(String key, String value);
	
	/**
	 * 查看是否有这个键
	 * @param key
	 * @return
	 */
	public boolean checkKey(String key);
	
	/**
	 * 按键取值
	 * @param key
	 * @return
	 */
	public Object lIndel(String key);
	
	/**
	 * 求长度值
	 * @param key
	 * @return
	 */
	public Long lLength(String key);
	
	/**
	 * 从上一个元素左边取值
	 * @param key
	 * @return
	 */
	public String lPop(String key);
	
	/**
	 * 按正则表达式匹配的键取值
	 * @param pattern
	 * @return
	 */
	public Set<String > getKeys(String pattern);
	
	/**
	 * 存入一个map
	 * @param key
	 * @param map
	 */
	public void setMap(Object key, Map map) ;
	
	/**
	 * 获取一个map
	 * @param key
	 * @param map
	 */
	public Map getMap(Object key) ;

	/**
	 * 获取一个List
	 * @param key
	 * @param map
	 */
	public List<String> getList(String key,long start,long end);
	
}